package com.interfaces {
import laya.utils.Handler;

public interface IAction {

	/**
	 * 注册事件
	 * @param action 事件名字
	 * @param handler 处理事件函数
	 * @param group 分组集合
	 */
	function regActionHandler(action:String, handler:Handler, group:String = null):void;
	/**
	 * 注册事件
	 * @param action 事件名字
	 * @param caller 执行域(this)
	 * @param method 处理事件函数
	 * @param group 分组集合
	 */
	function regAction(action:String, caller:*, method:Function, group:String = null):void;

	/**
	 * 删除所有分组中的此动作
	 * @param arge 动作名字
	 */
	function removeAllAction(...arge):void;

	/**
	 * 删除一个分组
	 * @param group 分组集合
	 */
	function removeGroup(group:String):void;

	/**
	 * 删除一个分组的所有动作
	 * @param group 分组集合
	 * @param arge 事件名字 数组
	 */
	function removeGroupActions(group:String, ...arge):void;

	/**
	 * 删除事件
	 * @param action 事件名字
	 * @param method 删除指定的 Function 处理事件
	 * @param group 分组集合
	 */
	function removeHandler(action:String, method:Function, group:String=null):void;

	/**
	 * 向一个分组集合发送事件
	 * @param group 分组
	 * @param action 事件名字
	 * @param arge 发送的数据
	 */
	function sendGroupAction(group:String, action:String, ...arge):void;

	/**
	 * 发送事件
	 * @param action 事件名字
	 * @param arge 发送的数据
	 */
	function sendAction(action:String, ...arge):void;



}
}
